Color lookup tables (CLUTs) are data structures that provide a transformation or mapping of a first set of colors into a second set of colors. For example, a CLUT may be used to map colors, typically represented by numerical values, as captured by an imaging device (e.g., a camera, a scanner, etc.) into a device-dependent color space of a particular output device or class or devices. Generally, the device-dependent color space is based on either an additive color model or a subtractive color model. For example, display devices such as, but not limited to, computer displays, monitors and projectors often employ an additive color model known as a red-green-blue (RGB) color model. Output devices including, but not limited to, printers typically employ a subtractive color model such as a cyan-magenta-yellow-key (CMYK) color model. In another example, a CLUT may provide a mapping between a device-dependent color space and a device-independent color space. For example, the CLUT may map a device-dependent color space of an input device (e.g., an imaging device) to a device-independent color space used for image processing within a computer. Alternatively, the CLUT may be used to map the device-independent color space into a color space (e.g., RGB) of an output device (e.g., a display), for example. In some examples, the mapping provided by the CLUT between the device-dependent and device-independent color spaces is bidirectional while in other examples the mapping is uni-directional.
A CLUT also provides means for reducing a size or an amount of data used to represent a particular image in terms of a color space. In particular, the CLUT may represent a large number of possible colors of a specific color space in terms of a relatively smaller number of nodes within the color space. The nodes form a mesh or matrix of discrete colors from which all of the colors of the color space may be recreated using an interpolation between the nodes. By representing a larger color space with a relatively smaller number of nodes in conjunction with interpolation, data storage requirements for the CLUT may be significantly reduced.
In some examples, a CLUT may be employed by a color management system in conjunction with an ICC profile according to standards promulgated by the International Color Consortium (ICC). An ICC profile describes or defines color attributes of a specific device in terms of a target color space and a profile connection space (PCS). The color attributes of the specific device include the device-dependent color space while PCS represents an example of a device-independent color space. The PCS may be one of the Commission Internationale de L'éclairage (CIE) L* a* b* (CIELAB) or the CIE XYZ (CIEXYZ) color spaces, for example. According to some examples, the CLUT is used in conjunction with or as part of the ICC profile to provide the mapping between (either to or from) the PCS and the device-dependent color space of the specific device as specified by the ICC profile.
In creating and using CLUTs, it is often useful to modify a value of a node. In some examples, the node may be manually modified (e.g. by a user) while in other instances, the node is modified substantially automatically by a profile adjustment tool, for example. The modification of a node may, in turn, introduce a discontinuity in an effective color space represented by the CLUT. Unfortunately, discontinuities or abrupt, ‘unsmooth’ variations in node values between neighboring nodes of the CLUT may result in visual artifacts when the CLUT is employed. The visual artifacts may degrade an image processed using the CLUT, for example.
Certain examples have other features that are one of in addition to and in lieu of the features illustrated in the above-referenced figures. These and other features are detailed below with reference to the above-referenced figures.